
#ifdef __linux__
#elif _WIN32
#elif PIKA_LWIP_ENABLE
#else
struct in_addr
{
    in_addr_t s_addr;
};
#define INET_ADDRSTRLEN 16  // 包括终止符 '\0'
static char *inet_ntoa(struct in_addr in) {
    static char str[INET_ADDRSTRLEN];
    uint32_t ip = ntohl(in.s_addr);
    snprintf(str, INET_ADDRSTRLEN, "%u.%u.%u.%u",
             (ip >> 24) & 0xFF, (ip >> 16) & 0xFF, (ip >> 8) & 0xFF, ip & 0xFF);
    return str;
}



static int inet_pton(int af, const char *src, void *dst) {
    if (af != AF_INET) {
        errno = EAFNOSUPPORT;
        return -1;
    }

    struct in_addr *addr = (struct in_addr *)dst;
    int a, b, c, d;

    // 解析 IP 地址字符串
    if (sscanf(src, "%d.%d.%d.%d", &a, &b, &c, &d) != 4) {
        return 0;  // 不是有效的 IP 地址
    }

    // 检查每个部分是否在 0-255 范围内
    if (a < 0 || a > 255 || b < 0 || b > 255 || c < 0 || c > 255 || d < 0 || d > 255) {
        return 0;  // 不是有效的 IP 地址
    }

    // 将 IP 地址转换为网络字节序
    addr->s_addr = htonl((a << 24) | (b << 16) | (c << 8) | d);

    return 1;
}
#endif
